# Copyright 2010 Michael Murr
#
# This file is part of LibForensics.
#
# LibForensics is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# LibForensics is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with LibForensics.  If not, see <http://www.gnu.org/licenses/>.

"""Constants for working with shell link files"""

__docformat__ = "restructuredtext en"
__all__ = [
    "SLDF_DEFAULT", "SLDF_HAS_ID_LIST", "SLDF_HAS_LINK_INFO", "SLDF_HAS_NAME",
    "SLDF_HAS_RELPATH", "SLDF_HAS_WORKINGDIR", "SLDF_HAS_ARGS",
    "SLDF_HAS_ICONLOCATION", "SLDF_UNICODE","SLDF_FORCE_NO_LINKINFO",
    "SLDF_HAS_EXP_SZ", "SLDF_RUN_IN_SEPARATE", "SLDF_HAS_LOGO3ID",
    "SLDF_HAS_DARWINID", "SLDF_RUNAS_USER", "SLDF_HAS_EXP_ICON_SZ",
    "SLDF_NO_PIDL_ALIAS", "SLDF_FORCE_UNCNAME", "SLDF_RUN_WITH_SHIMLAYER",
    "SLDF_FORCE_NO_LINKTRACK", "SLDF_ENABLE_TARGET_METADATA",
    "SLDF_DISABLE_LINK_PATH_TRACKING",
    "SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING", "SLDF_NO_KF_ALIAS",
    "SLDF_ALLOW_LINK_TO_LINK", "SLDF_UNALIAS_ON_SAVE",
    "SLDF_PREFER_ENVIRONMENT_PATH", "SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET",

    "SLIF_HAS_VOLUME_ID_LOCAL_BASE_PATH", "SLIF_HAS_CNRL_AND_PATH_SUFFIX",

    "CNRLF_HAS_VALID_DEVICE", "CNRLF_HAS_VALID_NET_TYPE",

    "CONSOLE_PROPS_SIG", "CONSOLE_FE_PROPS_SIG", "DARWIN_PROPS_SIG",
    "ENVIRONMENT_PROPS_SIG", "ICON_ENVIRONMENT_PROPS_SIG",
    "KNOWN_FOLDER_PROPS_SIG", "PROPERTY_STORE_PROPS_SIG", "SHIM_PROPS_SIG",
    "SPECIAL_FOLDER_PROPS_SIG", "TRACKER_PROPS_SIG",
    "VISTA_AND_ABOVE_IDLIST_PROPS_SIG"
]

SLDF_DEFAULT = 0
SLDF_HAS_ID_LIST = 1
SLDF_HAS_LINK_INFO = 2
SLDF_HAS_NAME = 4
SLDF_HAS_RELPATH = 8
SLDF_HAS_WORKINGDIR = 0x10
SLDF_HAS_ARGS = 0x20
SLDF_HAS_ICONLOCATION = 0x40
SLDF_UNICODE = 0x80
SLDF_FORCE_NO_LINKINFO = 0x100
SLDF_HAS_EXP_SZ = 0x200
SLDF_RUN_IN_SEPARATE = 0x400
SLDF_HAS_LOGO3ID = 0x800
SLDF_HAS_DARWINID = 0x1000
SLDF_RUNAS_USER = 0x2000
SLDF_HAS_EXP_ICON_SZ = 0x4000
SLDF_NO_PIDL_ALIAS = 0x8000
SLDF_FORCE_UNCNAME = 0x10000
SLDF_RUN_WITH_SHIMLAYER = 0x20000
SLDF_FORCE_NO_LINKTRACK = 0x40000
SLDF_ENABLE_TARGET_METADATA = 0x800000
SLDF_DISABLE_LINK_PATH_TRACKING = 0x100000
SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING = 0x200000
SLDF_NO_KF_ALIAS = 0x400000
SLDF_ALLOW_LINK_TO_LINK = 0x800000
SLDF_UNALIAS_ON_SAVE = 0x1000000
SLDF_PREFER_ENVIRONMENT_PATH = 0x2000000
SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET = 0x4000000


# CNRL = CommonNetworkRelativeLink
SLIF_HAS_VOLUME_ID_LOCAL_BASE_PATH = 1
SLIF_HAS_CNRL_AND_PATH_SUFFIX = 2

CNRLF_HAS_VALID_DEVICE = 1
CNRLF_HAS_VALID_NET_TYPE = 2


CONSOLE_PROPS_SIG = 0xA0000002
CONSOLE_FE_PROPS_SIG = 0xA0000004
DARWIN_PROPS_SIG = 0xA0000006
ENVIRONMENT_PROPS_SIG = 0xA0000001
ICON_ENVIRONMENT_PROPS_SIG = 0xA0000007
KNOWN_FOLDER_PROPS_SIG = 0xA000000B
PROPERTY_STORE_PROPS_SIG = 0xA0000009
SHIM_PROPS_SIG = 0xA0000008
SPECIAL_FOLDER_PROPS_SIG = 0xA0000005
TRACKER_PROPS_SIG = 0xA0000003
VISTA_AND_ABOVE_IDLIST_PROPS_SIG = 0xA000000C
